home *** CD-ROM | disk | FTP | other *** search
/ Compendium Deluxe 2 / LSD and 17bit Compendium Deluxe - Volume II.iso / a / prog / arexx / zedrexx.lha / ZedREXX / REXX / Events.zrx < prev    next >
Text File  |  1994-08-08  |  3KB  |  128 lines

  1. /* $VER: events.zrx 1.0 (1.08.94)
  2.  * A little script that shows some of the events
  3.  * Copyright (c) 1993-1994 Reality Check, Inc.
  4.  *
  5.  */
  6.  
  7. OPTIONS RESULTS
  8. SIGNAL ON ERROR
  9. SIGNAL ON HALT
  10.  
  11. /* Application Data */
  12. 'zInterface zEvents'
  13.     'zWindow Main Label "Event Example" Open Centered CloseEvent DropEvent ChildMaxWidth'
  14.     'zMenu Project'
  15.         'zObject Button Quit Label "&Quit" SelectEvent'
  16.     'zEndMenu'
  17.     'zObject TextDisplay TL0 NumColumns=20 NoBorder Value="Drop Directories on ME!" Justification=Center'
  18.     'zObject TextDisplay DName NumColumns=20'
  19.     'zObject ListView DDir NumColumns=20 NumLines=5 Order=Ascend ChangeEvent'
  20.     'zObject ListView DFile NumColumns=20 NumLines=10 Order=Ascend ReadOnly'
  21.     'zObject Line'
  22.     'zGroup Horizontal ChildMaxWidth'
  23.         'zObject Button OK Label "&OK" SelectEvent'
  24.         'zObject Button Cancel Label "&Cancel" SelectEvent'
  25.     'zEndGroup'
  26.     'zEndWindow'
  27.  
  28.     'zWindow Events Label "Events" Open Centered DropEvent NoClose'
  29.     'zObject TextDisplay TDO NumColumns=15 Label="RESULT:"'
  30.     'zObject TextDisplay Window NumColumns=15 Label="Window:"'
  31.     'zObject TextDisplay Object NumColumns=15 Label="Object:"'
  32.     'zObject TextDisplay Event NumColumns=15 Label="Event:"'
  33.     'zObject TextDisplay Qualifiers NumColumns=15 Label="Qualifiers:"'
  34.     'zObject IntegerDisplay MouseX NumColumns=6 Label="Mouse X:"'
  35.     'zObject IntegerDisplay MouseY NumColumns=6 Label="Mouse Y:"'
  36.     'zObject TextDisplay Value NumColumns=15 Label="Value:"'
  37.     'zObject TextDisplay ValueIndex NumColumns=15 Label="Value Index:"'
  38.     'zEndWindow'
  39. 'zEndInterface'
  40.  
  41. /* Turn everything on */
  42. 'zDoMethod zEvents Activate'
  43.  
  44. /* Enter the event loop */
  45. DO FOREVER
  46.  
  47.     /* Wait for something to happen */
  48.     'zWaitForEvent stem.'
  49.     intrp = RESULT
  50.  
  51.     /* Update the fields in the Events window */
  52.     'zSetAttr TD0 Value='RESULT
  53.     'zSetAttr Events Fields stem.'
  54.  
  55.     /* Do something with the event */
  56.     INTERPRET "zRC="intrp"()"
  57. END
  58.  
  59. Halt:
  60. Quit_Select:
  61. zEvents_Quit:
  62.     EXIT
  63.  
  64. Error:
  65.     IF RC=20 THEN DO
  66.     SAY "Must be run within zrx"
  67.     EXIT
  68.     END
  69.     SAY "Error" RC "at line" SIGL " (errnum="zErrNum")"
  70.     EXIT
  71.  
  72. Main_Close:
  73.     EXIT
  74.  
  75. OK_Select:
  76. Cancel_Select:
  77. Events_Drop:
  78.     Return 0
  79.  
  80. Main_Drop:
  81.     /* Get the name of the first object dropped */
  82.     Parse var stem.value first '|' last
  83.  
  84.     /* Show it */
  85.     ShowDirectory(first)
  86.     Return 0
  87.  
  88. DDir_Change:
  89.     /* Make sure it changed from a user interaction, not
  90.      * from a program action */
  91.     IF stem.qualifiers="" THEN DO
  92.     'zGetAttr DName Value'
  93.     first=RESULT
  94.     IF (stem.value="..")    THEN name=ParentDir(first)
  95.                 ELSE name=AddPart(first,stem.value)
  96.     ShowDirectory(name)
  97.     END
  98.     Return 0
  99.  
  100. ShowDirectory: PROCEDURE
  101. PARSE ARG first
  102.     /* Lock the display so that nothing can happen */
  103.     'zDoMethod zEvents Lock'
  104.  
  105.     /* Set the volume name object */
  106.     'zSetAttr DName Value' first
  107.  
  108.     /* Clear the list views */
  109.     'zSetAttr DDir  Items=""'
  110.     'zSetAttr DFile Items=""'
  111.  
  112.     /* Get the directory */
  113.     CALL ExAll(first,entries.)
  114.  
  115.     IF Info(first,stem.) = 1 THEN DO
  116.     IF ~(stem.name||":"=first) THEN 'zDoMethod DDir Add ".."'
  117.     END
  118.  
  119.     /* Add the directory parts to the correct listview */
  120.     DO i=0 TO (entries.count - 1)
  121.     IF entries.i.direntrytype="DIRECTORY"    THEN 'zDoMethod DDir  Add' entries.i.filename
  122.                         ELSE 'zDoMethod DFile Add' entries.i.filename
  123.     END
  124.  
  125.     /* Unlock the display */
  126.     'zDoMethod zEvents UnLock'
  127.     Return 0
  128.